<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<style>
  p{
    font-size: 50px;
  }
</style>
<body>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
<p>或发哦发了哈士大夫</p>
</body>
<script>
  //触发函数事件后，短时间间隔内无法连续调用，只有上一次函数执行后，过了规定的时间间隔，才能进行下一次的函数调用。
  window.onscroll = throttle(function () {
    let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
    console.log('滚动条位置：' + scrollTop);
  }, 800)
  /**
   * 节流函数
   * @param method 事件触发的操作
   * @param mustRunDelay 间隔多少毫秒需要触发一次事件
   */
  function throttle(method, mustRunDelay) {
    let timer,
      args = arguments,
      start;
    return function loop() {
      let self = this;
      let now = Date.now();
      if (!start) {
        start = now;
      }
      if (timer) {
        clearTimeout(timer);
      }
      if (now - start >= mustRunDelay) {
        method.apply(self, args);
        start = now;
      } else {
        timer = setTimeout(function () {
          loop.apply(self, args);
        }, 50);
      }
    }
  }

</script>

</html>